import os
from PIL import Image

def convert_png_to_jpg(directory_path):
    """
    将目录中的所有PNG图片转换为JPG格式
    :param directory_path: 目录路径
    """
    # 检查目录是否存在
    if not os.path.isdir(directory_path):
        print(f"错误：目录 '{directory_path}' 不存在")
        return

    # 遍历目录中的文件
    for filename in os.listdir(directory_path):
        if filename.lower().endswith('.png'):
            file_path = os.path.join(directory_path, filename)
            try:
                # 打开PNG图片
                with Image.open(file_path) as img:
                    # 去除Alpha通道（如果有的话），因为JPG不支持透明度
                    if img.mode in ('RGBA', 'LA'):
                        # 创建一个白色背景的RGB图像
                        background = Image.new('RGB', img.size, (255, 255, 255))
                        background.paste(img, mask=img.split()[-1])  # 使用alpha通道作为mask
                        img = background
                    elif img.mode != 'RGB':
                        img = img.convert('RGB')

                    # 构造新的JPG文件名
                    new_filename = os.path.splitext(filename)[0] + '.jpg'
                    new_file_path = os.path.join(directory_path, new_filename)

                    # 保存为JPG格式
                    img.save(new_file_path, 'JPEG')
                    print(f"已转换: {filename} -> {new_filename}")
            except Exception as e:
                print(f"处理文件 {filename} 时出错: {e}")

if __name__ == "__main__":
    directory = "NJ知识产权"  # 替换为你的目录路径
    convert_png_to_jpg(directory)